#!/usr/bin/env bash

####on vérifie qu'un parametre au moins est passé en argument
if [ $# -lt 1 ];then
	echo -e "\n ERROR : scriptIBD.sh <dataname> <IBD training sample file> <mapFile> \n" 1>&2
	exit 1
fi

nb=$RANDOM
dataname=$1 #récupération du 1er parametre
cut -d" " -f1 $dataname.fam  | sort | uniq > ped_$nb # récupération de la liste des familles

#### création des répertoires ped 12 et outplink s'ils n'existent pas déjà
if [ ! -d ped12 ];then
	mkdir ped12
fi
if [ ! -d outplink ];then
	mkdir outplink
fi
if [ ! -d forIdcoeff ];then
	mkdir forIdcoeff
fi
if [ ! -d newtfile ];then
	mkdir newtfile
fi

#### pour chaque famille du ".fam" de départ
while read line;do
	
	# récupération des colonnes ped et ind correspondant à la famille 
	grep $line $dataname.fam | cut -d" " -f1,2 > ped12/$line.ped12 
	
	# création des fichiers d'entrée pour le script1.r
	plink --noweb --bfile $dataname --keep ped12/$line.ped12 --make-bed --out outplink/$line
	plink --noweb --bfile outplink/$line --transpose --recode --out outplink/$line

	echo -e "\n########### CREATE FILES FOR idcoeff : $line #############\n"
	Rscript script1.r outplink/$line.tfam

	echo -e "\n############# SETTING UP idcoeff : $line ###############\n"
	# Lancement de idcoeffD
	./idcoefs -p forIdcoeff/pedcoef_$line.p -s forIdcoeff/pedcoef_$line.s -o reskin_$line

	# modification des fichiers de sortie de idcoeff
	perl modif_idcoefoutput.pl $line reskin_$line forIdcoeff/corresp_$line.txt

	echo -e "\n########### CREATE FILES FOR IBDLD : $line #############\n"
	Rscript script2.r outplink/$line.tped outplink/$line.tfam forIdcoeff/orderped_$line".p" $line
	perl create_newtfam.pl $line forIdcoeff/orderped_$line.p outplink/$line.fam
	plink --noweb --tfile newtfile/$line"_new" --recode --out $line"_tmpnew"

	cut -d" " -f1-5,7- $line"_tmpnew.ped" > $line"_new.ped"
	#echo -e "\n############# SETTING UP IBDLD : $line ###############\n"
	./IBDLD -o $line -p $line"_new.ped" -m $3 -i ibdldreskin_$line -method LD-RR -ploci 10  -unphased $2  #$2 Training Sample File, $3 map file
	#./IBDLD -o $line -p newtfile/$line"_new.tfam" -m $3 -i ibdldreskin_$line -method LD-RR -ploci 10  -unphased $2	#$2 Training Sample File, $3 map file

done < ped_$nb

	# concaténation des données
	#cat *_new.ped > $dataname"_new.ped"
	#cat ibdldreskin_* > ibdldreskin_$dataname
	#echo -e "\n############# SETTING UP IBDLD : $line ###############\n"
	#./IBDLD -o $line -p $dataname"_new.ped" -m bruga3.map -i ibdldreskin_$dataname -method LD-RR -ploci 10  -unphased $2

	# concaténation des données
	#cat newtfile/*_new.tped > $dataname"_new.tped"
	#cat newtfile/*_new.tfam > $dataname"_new.tfam"
	#plink --noweb --tfile $dataname"_new" --recode --out $dataname"_new"
	#cat ibdldreskin_* > idbldreskin_$dataname
	#echo -e "\n############# SETTING UP IBDLD : $line ###############\n"
	#./IBDLD -o $line -p $dataname"_new.ped" -m bruga3.map -i idbldreskin_$dataname -method LD-RR -ploci 10  -unphased $2

rm ped_$nb
#rm *_tmpnew

# example de commande ./scriptIBD.sh datas/brugada7 datas/tsfdesir.txt datas/brugada8.map
